home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / cli / okami15.lzh / OKAMI15 / DOC / KOMPAT.DOC < prev    next >
Text File  |  1992-09-20  |  11KB  |  289 lines

  1.  
  2.     =====================================================
  3.  
  4. @(#)            OKAMI SHELL - KOMPATIBILITÄT
  5.  
  6.     =====================================================
  7.             Stand: 15.8.92
  8.  
  9.  
  10.     BITTE ERST DIE DATEIN README UND OKAMI.DOC LESEN!
  11.  
  12.  
  13. Diese Datei vermerkt alle Änderungen der Shell, die im weitesten Sinne zu
  14. Inkompatibilität zu älteren Versionen führen können. Zu jeder Änderung ist
  15. ein Datum angegeben. Es bedeutet, daß alle nach diesem Datum erstellten Ver-
  16. sionen der Shell in dem betreffenden Punkt zu allen vor diesem Datum erstell-
  17. ten Versionen inkompatibel sind bzw. sich anders verhalten, was Anpassungen
  18. an Shellscripts o.ä. notwendig macht. Das Erstellungsdatum einer Shell kann
  19. durch Eingabe von "ver -c" ermittelt werden.
  20.  
  21.  
  22.             ========
  23. @(#)            15.11.90
  24.             ========
  25.  
  26. Das Kommando grep hat bisher nur feste Strings ohne Rücksicht auf Wildcards
  27. gesucht und entsprach daher dem Unix-fgrep. Ab jetzt gibt es fgrep für die
  28. Suche nach festen Strings und grep, das erweiterte Wildcards berücksichtigt.
  29. Shellscripts, die grep zum Suchen von Strings, die Wildcards (Sterne, Frage-
  30. zeichen und eckige Klammern) beinhalten, benutzen, sollten statt grep fgrep
  31. benutzen. Die notwendigen Änderungen beschränken sich also auf das Hinzufügen
  32. des "f".
  33.  
  34.  
  35.             ========
  36. @(#)            23.11.90
  37.             ========
  38.  
  39. Ab diesem Tag betrachtet die Shell das doppelte Anführungszeichen (") als
  40. Gruppierungssymbol, was sie in den vorigen Versionen nicht getan hat. Das
  41. hat folgende Konsequenzen:
  42.  
  43. * Das doppelte Anführungszeichen muß, wenn es ausgegeben werden soll, mit
  44.   einem davorstehenden Dach gequotet werden. Beispiel: das Kommando
  45.       echo 3.5"-Diskette
  46.   erzeugte in früheren Versionen die Ausgabe 3.5"-Diskette. In der neueren
  47.   Version muß es heißen:
  48.       echo 3.5^"-Diskette
  49.   ABHILFE: vor jedes Anführungszeichen ein Dach setzen.
  50.  
  51. * Wenn mit dem Fluchtsymbol (^) Steuerzeichen in eine Eingabezeile aufgenommen
  52.   werden, müssen diese ebenfalls in doppelten Anführungszeichen stehen, da sie
  53.   sonst als Wort-Trennzeichen gelten. Beispiel: in
  54.       echo hallo ^n wie gehts
  55.   ist das Zeilenend-Zeichen (^n) ein Worttrenner und wird daher nicht wie in
  56.   den älteren Versionen als Zeilenvorschub ausgegeben.
  57.   ABHILFE: solche Fälle in doppelte Anführungszeichen setzen:
  58.       echo "hallo ^n wie gehts"
  59.  
  60. * Mehrere hintereinanderstehende Whitespace-Zeichen werden zu einem Leerzeichen
  61.   zusammengefaßt, wenn sie nicht in doppelten Anführungszeichen stehen. Die
  62.   älteren Versionen der Shell taten das nicht. Beispiel:
  63.       echo a       b          c
  64.   erzeugte in früheren Versionen die Ausgabe
  65.       a       b          c
  66.   , in der aktuellen Version jedoch
  67.       a b c
  68.   . Das gilt auch für die Deklaration von Shellfunktionen.
  69.   ABHILFE: auch hier in doppelte Anführungszeichen setzen:
  70.       echo "a        b          c"
  71.  
  72.  
  73.  
  74.  
  75.             ========
  76. @(#)            27.12.90
  77.             ========
  78.  
  79. Die Umleitung der Ein- und Ausgabe erfolgt ab jetzt vollständig auf Gemdos-
  80. Ebene mit Hilfe der Funktion Fforce. In allen älteren Versionen wurde die
  81. Umleitung nur von der Shell selber durchgeführt.
  82. Der Vorteil der neuen Lösung ist
  83. 1) daß sich jetzt alle externen Programme umleiten lassen, die ihre Ein- und
  84.    Ausgabe über Gemdos abwickeln, und
  85. 2) daß sich auch externe Programme, die in Shellscripts stehen, zusammen mit
  86.    den Shellscripts umleiten lassen, was vorher nicht möglich war.
  87.  
  88. Bedauerlicherweise ergeben sich dadurch auch zwei Nachteile:
  89.  
  90. *) Wenn ein Kommando eine Tastatureingabe entgegennimmt, wird das Echo der
  91.    Tasten zur Standardausgabe geschrieben. Wenn diese dabei umgeleitet wird,
  92.    kommt das Tastenecho nicht auf den Bildschirm, sondern mit in die Umlei-
  93.    tung. Beispiel: "cat >datei.txt" diente vorher dazu, die Tastatureingabe
  94.    in die Datei datei.txt umzuleiten. Jetzt kommt allerdings auch das Tasten-
  95.    echo in diese Datei.
  96.    ABHILFE: Keine, dieses Problem ist bis jetzt nicht lösbar.
  97.  
  98. *) Das Betriebssystem stellt keine Standard-Fehlerausgabe zur Verfügung, da es
  99.    die reichlich starre Organisation der "Standard-File-Handles" von MS-DOS
  100.    übernommen hat. Es gibt also eine Standard-Eingabe, eine Standard-Ausgabe,
  101.    eine Standard-serielle Schnittstelle usw. Unter Unix wird File-Deskriptor
  102.    Nr. 2 für Fehlerausgaben benutzt, diese werden mit "2>" umgeleitet. Um
  103.    dazu konform zu bleiben, benutzt die Okami-Shell ebenfalls File-Deskriptor
  104.    Nr. 2 für die Fehlerausgaben. Dies ist aber normalerweise die serielle
  105.    Schnittstelle. Die Okami-Shell biegt also zu Beginn alle Ausgaben, die auf
  106.    die Standard-serielle Schnittstelle gehen sollten, auf die Standard-Ausgabe
  107.    um. Das ist nicht allzu schlimm, da Programme, die diese Schnittstelle be-
  108.    nutzen, das sowieso über die nicht umleitbaren Xbios-Funktionen tun sollten. 
  109.    Es ist aber aus einem anderen Grund schlimm: die serielle Schnittstelle
  110.    wurde bisher als NULL-Gerät benutzt. (Ein richtiges Null-Gerät hat man von
  111.    MS-DOS natürlich nicht übernommen.) Diese Möglichkeit fällt jetzt natürlich
  112.    weg, denn "rm datei 2>NULL:", womit die Fehlerausgabe von rm zum Null-Gerät
  113.    umgeleitet werden soll, schickt bei NULL=AUX: die Fehlerausgabe über die
  114.    serielle Schnittstelle (die auf den Bildschirm umgebogen wurde) genau
  115.    dahin, wo sie nicht hinsoll, nämlich auf den Bildschirm.
  116.    Um dieses Problem zu umgehen, lautet die Defaulteinstellung von NULL ab
  117.    jetzt PRN:, es wird also die paralelle Schnittstelle benutzt. Wer hier
  118.    einen Drucker angeschlossen hat, dem bringt das natürlich nicht allzu viel.
  119.    ABHILFE: wer keinen Drucker hat, kann NULL auf PRN: stehen lassen.
  120.    Wer wohl einen Drucker hat, sollte NULL auf eine Datei z.B. auf der Ram-
  121.    disk einstellen, z.B. durch die Zeile
  122.        NULL=$PIPDIR/nullfile
  123.    im Profile.
  124.  
  125.  
  126.             ======
  127. @(#)            2.2.91
  128.             ======
  129.  
  130. Alle Funktionen, die direkt auf den Bildschirmspeicher zugreifen, arbeiten
  131. von jetzt an mit der logischen (Logbase) anstelle mit der physikalischen
  132. (Physbase) Bildschirmadresse. Diese sind normalerweise beide gleich, aber
  133. die logische Adresse ist zuverlässiger, und die Benutzung der physikalischen
  134. Adresse kann zu eigenartigen Effekten führen, wie ich bei der Arbeit am
  135. Okami-Font-Editor festgestellt habe.
  136. Betroffen sind die Funktionen:
  137.     fsel
  138.     getscr
  139.     putscr
  140. sowie die Anzeige der Fileselect-Box in der Tastatureingabe mit Ctrl-F.
  141. Dadurch sollte der eigenartige Effekt, daß putscr einen Bildschirm nicht
  142. oder nicht vollständig wiederherstellt, behoben sein.
  143. Probleme gibt es höchstens mit Programmen, die logische und physikalische
  144. Adresse auf verschiedene Werte einstellen, z.B. um auf einen Bildschirm zu
  145. zeichnen, während ein anderer angezeigt wird. Das ist aber sehr unwahrschein-
  146. lich.
  147.  
  148.             =======
  149. @(#)            16.2.91
  150.             =======
  151.  
  152. Das Ausgabeformat von ls wurde z.T. geändert. Ab jetzt gibt ls immer relative
  153. Dateinamen aus (früher wurden nur die Basisnamen ausgegeben). Beispiel:
  154. "ls ../*.c" lieferte früher
  155.  
  156.     sh.c
  157.     cmds.c
  158.     utl.c
  159.  
  160. und liefer jetzt
  161.  
  162.     ..\sh.c
  163.     ..\cmds.c
  164.     ..\utl.c
  165.  
  166. Daraus folgt, daß die Ausgabe eines Dateinamens nicht immer genau 14 Zeichen
  167. (incl. Leerzeichen am Ende) lang ist, sondern beliebig variiert. Die spalten-
  168. weise Ausgabe mit ls -C paßt sich automatisch der Dateinamenlänge an.
  169. Programme, die auf das bisherige Ausgabeformat rechnen, müssen angepaßt werden,
  170. wenn Dateilisten von anderen als dem aktuellen Directory verlangt werden.
  171. Eine Möglichkeit ist das Pipen der ls-Ausgabe zu dem basename-Kommando:
  172.     ls | xargs basename
  173. Dies funktioniert allerdings nicht mit ls -C. Um Probleme mit den Dateityp-
  174. merkern [] (Directory) und <> (ausführbar) zu vermeiden, sollte hier auch
  175. ls -k benutzt werden.
  176.  
  177.  
  178.             ======
  179. @(#)            1.3.91
  180.             ======
  181.  
  182. Für den Pfad, auf dem Hilfsdateien u.ä. liegen, gibt es jetzt eine neue Shell-
  183. variable: ETC. Dies entspricht /etc unter Unix. Die Änderung bewirkt, daß die
  184. Datei help, die nach Eingabe des gleichnamigen Kommandos angezeigt wird,
  185. jetzt nicht mehr auf $HOME, sondern auf $ETC erwartet wird.
  186. ABHILFE: keine, da ETC beim Start der Shell auf denselben Wert wie HOME ge-
  187. setzt wird. Wer allerdings ETC ändert, muß dafür sorgen, daß auch die Datei
  188. h